// global part
doctype[^
<!DOCTYPE html>
$]

html:xml

:html('div')        // set default handler div
div:html('div')

// head part
head:xml
charset:xml('meta').noele{
    charset:attr
}
http-equiv:xml('meta').noele{
    name:attr('http-equiv') // content-type, expires, refresh, set-cookie
    content:attr
}
meta:xml.noele{
    name:attr               // author, description, keywords, generator, revised, others 
    content:attr
}
title:xml.noele{
    text:text
}
link:xml.noele{
    href:attr
    rel:attr(default='stylesheet')
    lang:attr('hreflang')
    media:attr
    type:attr(default='text/css')    
    .tpl:attr('rel')
}
script:xml.noele{
    src:attr
    type:attr(default='text/javascript')
    async:attr(default='false')
    defer:attr(default='true')
    charset:attr(default='utf-8')
    .script:text
}
style:xml.noele{
    type:attr(default='text/css')
    .script:text
}

// body part
body:html
h1:html
h2:html
h3:html
h4:html
h5:html
ul:html
li:html
br:html
hr:html
pre:html
ol:html{
    start:attr
}

a:html{
    text:text   
    href:attr   
    target:attr
    lang:attr('hreflang')   
    media:attr
    type:attr   
    ping:attr
    .tpl:attr('rel')
}

span:html.noele{
    text:text
}

img:html.noele{
    src:attr
    alt:attr
    width:attr
    height:attr
}

canvas:html{
    width:attr
    height:attr
}

iframe:html{
    src:attr
    scrolling:attr
}

// table part
table:html


// form part
button:form{
    text:text
    disabled:attr
}

// other html tags
abbr:html{
    text:text
    title:attr('title')
}
base:xml.noele{
    href:attr
    target:attr
}
quote:html('blockquote'){
    cite:attr
}

datalist:html
